// export function getLocalIPv4() {
//     try {
//         if(typeof window != 'undefined'){
//             var RTCPeerConnection = window.RTCPeerConnection || window.mozRTCPeerConnection || window.webkitRTCPeerConnection;

//             if (RTCPeerConnection) (()=>{
//               var rtc = new RTCPeerConnection()
//               rtc.createDataChannel(''); //创建一个可以发送任意数据的数据通道
//               rtc.createOffer( offerDesc => { //创建并存储一个sdp数据
//                 rtc.setLocalDescription(offerDesc)
//               }, e => { console.log(e)})

//               rtc.onicecandidate =(evt) => { //监听candidate事件
//                 if (evt.candidate) {
//                   // console.log('evt:',evt.candidate)
//                   let ip_rule = /([0-9]{1,3}(\.[0-9]{1,3}){3}|[a-f0-9]{1,4}(:[a-f0-9]{1,4}){7})/
//                   let ip_addr = ip_rule.exec(evt.candidate.candidate)
//                   if (ip_addr) {
//                     console.log(ip_addr[1]);
//                     return ip_addr[1];
//                   }
//                    console.log('ip_addr:',ip_addr)//打印获取的IP地址
//                 }
//               }
//             })()
//             else{console.log("没有找到")}
//           }
//       } catch (error) {
//         // 捕获并处理异常
//         console.error("An error occurred:", error);
//         // 可以根据具体情况进行适当的错误处理
//       }
//       return "";
//   }

export function getLocalIPv4() {
    return new Promise((resolve, reject) => {
        try {
            if (typeof window !== 'undefined') {
                var RTCPeerConnection =
                    window.RTCPeerConnection ||
                    window.mozRTCPeerConnection ||
                    window.webkitRTCPeerConnection;

                if (RTCPeerConnection) {
                    var rtc = new RTCPeerConnection();
                    rtc.createDataChannel(''); // 创建一个可以发送任意数据的数据通道
                    rtc.createOffer(
                        offerDesc => {
                            // 创建并存储一个 SDP 数据
                            rtc.setLocalDescription(offerDesc);
                        },
                        e => {
                            console.log(e);
                        }
                    );

                    rtc.onicecandidate = evt => {
                        // 监听 candidate 事件
                        if (evt.candidate) {
                            let ip_rule = /([0-9]{1,3}(\.[0-9]{1,3}){3}|[a-f0-9]{1,4}(:[a-f0-9]{1,4}){7})/;
                            let ip_addr = ip_rule.exec(evt.candidate.candidate);
                            if (ip_addr) {
                                console.log('ip_addr:', ip_addr[1]); // 打印获取的 IP 地址
                                resolve(ip_addr[1]); // 解析 Promise 并返回 IP 地址
                            }
                        }
                    };
                } else {
                    console.log("没有找到");
                    resolve(""); // 如果没有找到 RTCPeerConnection，解析 Promise 并返回空字符串
                }
            }
        } catch (error) {
            console.error("An error occurred:", error);
            reject(error); // 发生错误时，拒绝 Promise 并返回错误信息
        }
    });
}